using System;
using NCommet.Core;
using NCommet.Core.Agents;

namespace NCommet.Modules.TypedTreeValidatorTest
{
    /// <summary>
    /// Content class for a post pertaining to sports.
    /// </summary>
    [Serializable]
    public class SportsPost : ContentBase
    {

        /// <summary>
        /// The sports category into which a <see cref="NCommet.Modules.TypedTreeValidatorTest.SportsPost"/> falls.
        /// </summary>
        public enum SportCategories { Football, Basketball, Tennis };

        private SportCategories sportCategory;

        /// <summary>
        /// The <see cref="NCommet.Modules.TypedTreeValidatorTest.SportsPost.SportCategories"/> category into which this <see cref="NCommet.Modules.TypedTreeValidatorTest.SportsPost"/> falls.
        /// </summary>
        public virtual SportCategories SportCategory
        {
            get { return sportCategory; }
            set { sportCategory = value; }
        }

        private string title;

        /// <summary>
        /// The title of the <see cref="NCommet.Modules.TypedTreeValidatorTest.SportsPost"/>.
        /// </summary>
        /// <remarks>
        /// The property has been decorated with the <see cref="NCommet.Core.IndexableAttribute"/> with a key value of 1.
        /// </remarks>
        [Indexable(1)]
        public virtual string Title
        {
            get { return title; }
            set { title = value; }
        }

        private string body;

        /// <summary>
        /// The HTML body of the <see cref="NCommet.Modules.TypedTreeValidatorTest.SportsPost"/>.
        /// </summary>
        public virtual string Body
        {
            get { return body; }
            set { body = value; }
        }

    }
}
